/**
 * 工具类
 */
class Utils {


    /**
     * 模仿PHP的strtotime()函数
     * strtotime('2012-07-27 12:43:43') OR strtotime('2012-07-27')
     * @return 时间戳
     */
    public static strtotime(str) {
        if (str == 'now') {
            return Math.floor(new Date().getTime() / 1000);
        } else {
            var _arr = str.split(' ');
            var _day = _arr[0].split('-');
            _arr[1] = (_arr[1] == null) ? '0:0:0' : _arr[1];
            var _time = _arr[1].split(':');
            for (var i = _day.length - 1; i >= 0; i--) {
                _day[i] = isNaN(parseInt(_day[i])) ? 0 : parseInt(_day[i]);
            };
            for (var i = _time.length - 1; i >= 0; i--) {
                _time[i] = isNaN(parseInt(_time[i])) ? 0 : parseInt(_time[i]);
            };
            var _temp = new Date(_day[0], _day[1] - 1, _day[2], _time[0], _time[1], _time[2]);
            return Math.floor(_temp.getTime() / 1000);
        }
    }



    /**
     * 模仿PHP的time()函数
     * @return 返回当前时间戳
     */
    public static time() {
        return Number(Math.floor(new Date().getTime() / 1000));
    }



    /**
     * 模仿PHP的date()函数
     * strtotime('Y-m-d H:i:s');
     * @param format 只支持 'Y-m-d H:i:s','Y-m-d','H:i:s' 三种调用方式
     * @param time 为空时，取当前时间
     * @return 日期格式化的字符串
     */
    public static date(format, time) {
        var _temp = (time != null) ? new Date(time * 1000) : new Date();
        var _return = '';

        if (/Y-m-d/.test(format)) {
            var _day = [_temp.getFullYear(), this.addzero(1 + _temp.getMonth()), this.addzero(_temp.getDate())];
            _return = _day.join('-');
        }
        if (/H:i:s/.test(format)) {
            var _time = [this.addzero(_temp.getHours()), this.addzero(_temp.getMinutes()), this.addzero(_temp.getSeconds())];
            _return += ' ' + _time.join(':');
        }
        return _return;
    }
    public static addzero(i) {
        if (i <= 9) {
            return '0' + i;
        } else {
            return i;
        }
    }



    /**
     * 对象转url参数
     */
    // public static urlencode(data) {
    //     var _result = [];
    //     for (var key in data) {
    //         var value = data[key];
    //         if (value.constructor == Array) {
    //             value.forEach(function (_value) {
    //                 _result.push(key + "=" + _value);
    //             });
    //         } else {
    //             _result.push(key + '=' + value);
    //         }
    //     }

    //     return _result.join('&');
    // }
}